import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
import menu from '../assets/menu.json'
export default new Vuex.Store({
    state:{
        //要想修改这里面的值，唯一的方法是提交mutations
        token:JSON.parse(sessionStorage.getItem('token')||'{}'),
        user:JSON.parse(sessionStorage.getItem('user')||'{}'),
        theme:JSON.parse(sessionStorage.getItem('theme')||JSON.stringify(menu.themelist[0]))
    },
    getters:{
        //类似computed
    },
    mutations:{
        //类似methods，但不能放异步方法
        _save_token(state,load){
            sessionStorage.setItem('token',JSON.stringify(load))
            state.token=load;
        },
        _save_User(state,load){
            sessionStorage.setItem('user',JSON.stringify(load))
            state.user=load;
        },
        _save_Theme(state,load){
            sessionStorage.setItem('theme',JSON.stringify(load))
            state.theme=load;
        },
        _exit(state){
            // sessionStorage.clear();
            sessionStorage.removeItem('user')
            sessionStorage.removeItem('token')
            state.user=null;
            state.token=null;
        }
    },
    actions:{
        //类似methods，可实现异步方法（实际调用了mutations中的方法来实现）
        savetoken({commit},data){
            commit('_save_token',{adminid:data.adminid,tokenn:'Bearer '+data.token})
            commit('_save_User', data.user)
        },
        savetheme({commit},data){
            commit('_save_Theme', data)
        },
        exit({commit}){
            commit('_exit')
        }
    }

})

